const db=wx.cloud.database();
var myvalue = "";
// 初始化数据库
Page({

  /**
   * 页面的初始数据
  //  */
  data: {
    dataObj:"",
    dataObj1:"",
    dataObj2:"",
    dataObj3:"",
  },

  getData(){
    // 或者使用如下方法
    // wx.request({
    //   url: 'url',
    //   data:{},
    //   success:res=>{

    //   }
    // })

    

    // 取出数据库中所有数据
     db.collection("news").get({
      success:res=>{
        console.log(res);
        // 将res的结果赋给上面data中的dataObj空对象
        this.setData({
          dataObj:res.data
        })
      }
    })
  },

  getData1(){
    // 取出数据库中单条数据，使用.doc，doc中输入数据的ID
    db.collection("news").doc("28ee4e3e603c6e060833990669e8fbec").get({
      success:res=>{
        console.log(res);
        this.setData({
          dataObj1:res.data
        })
      }
    })
  },

  getData2(){
    // 使用then避免回调地狱,使用catch获取错误信息
    // .then(res=>{ }).catch(console.error())
    db.collection("news").get().then(res=>{
      this.setData({
         dataObj2:res.data
      })      
    })
  },

  // 使用where获取指定数据，where中放置的是一个对象
  getData3(){
    db.collection("news").where({
      author:"雷锋网"
    }).get()
      .then(res=>{
        console.log(res);

      })
  },

  // 向数据库插入数据
  addData(){
    // 为了防止用户多次点击添加多条数据，可以加入一个转圈圈的load画面
    wx.showLoading({
      title: '数据加载中...',
      mask:true,
    })
    db.collection("news").add({
      data:{
        title:"测试标题2",
        author:"李四",
        desc:"qweasdzxc",
      }
    }).then(res=>{
      console.log(res);
      wx.hideLoading({
      })
    })
  },


  // 点击提交表单进数据库
  btnSub(res){
    console.log(res);
    // 老的方法
    // var title = res.detail.value.title;
    // var author = res.detail.value.author;
    // var desc = res.detail.value.desc;
    // console.log(title,author,desc);


    // ES6中的解构方法
    // var {title,author,desc} = res.detail.value
    // console.log(title,author,desc);
    // db.collection("news").add({
    //   data:{
    //     title:title,
    //     author:author,
    //     desc:desc,
    //   }
    // }).then(res=>{
    //   console.log(res);
    // })


    // 比解构更方便快捷的方法,将value中的内容看做是一个对象整个传给一个新赋的对象
    var resVal = res.detail.value
    db.collection("news").add({
      data:resVal
    }).then(res=>{
      console.log(res);
    })
  },

  
  updateData(){
    // update方法可以根据doc修改单条数据，也可以新增一条数据
    // db.collection("news").doc("").update({
    //   data:{
    //     author:"王进",
    //     posttime:"2020-1-20"
    //   }
    // }).then(res=>{
    //   console.log(res);
    // })


    // set方法更新数据库中一组数据，会只留下更新的data中的信息，其余信息会被覆盖删除
     db.collection("news").doc("").set({
        data:{
          title:"新视觉新闻标题"
        }
      }).then(res=>{
        console.log(res);
      })

  },

  // 删除单条记录，只能根据doc来删除
  delData(){
    db.collection("news").doc(myvalue).remove().then(res=>{
      console.log(res);
    })
  },

  // 获取删除ID框输入的内容
  myInput(res){
    var value = res.detail.value
    console.log(value);
    myvalue=value;
  },

// 获取记录条目个数
  btnNum(){
    // 旧方法
    // db.collection("news").get().then(res=>{
    //   console.log(res);
    // })

    // 使用count 
    db.collection("news").count().then(res=>{
      console.log(res);
    })
  },

  getData4(){
    db.collection("news").get().then(res=>{
      this.setData({
        dataArr:res.data
      })
    })
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 使用watch来监听数据变动
    this.getData4();
    db.collection("news").watch({
      onChange:res=>{
        console.log(res.docs);
        this.setData({
          dataArr:res.docs
        })
      },
      onError:err=>{
        console.log(err);
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    
  }
})